

package gra;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * Glowna klasa gry.
 *
 */
public class Game 
{
    public static void main( String[] args ) throws Throwable//Funkcja glowna gry.
    {
        int liczbaGraczy;
        int liczbaRund;
        int liczbaBotow = 0;
        int liczbaLudzi = 0;
        boolean e = false;
        boolean f = false;
        boolean g = false;
        
        Table stol;
        
        BufferedReader in = new BufferedReader( new InputStreamReader(System.in) );

        System.out.println("||==========================================================||");
        System.out.println("||__________________________________________________________||");
        System.out.println("||_______+++++++++++++++++++++++++++++++++++++++++++________||");
        System.out.println("||_______+|******||******||**|+|**||******||******|+________||");
        System.out.println("||_______+|**||**||**||**||**||**|+|**|++++|**||**|+________||");
        System.out.println("||_______+|**||**||**||**||****|+++|******||**||**|+________||");
        System.out.println("||_______+|******||**||**||**||**|+|**|++++|**|**|++________||");
        System.out.println("||_______+|**|++++|******||**|+|**||******||**||**|+________||");
        System.out.println("||_______+++++++++++++++++++++++++++++++++++++++++++________||");
        System.out.println("||__________________________________________________________||");
        System.out.println("||==========================================================||");
        System.out.println("\n\n");
        
        
        /*
         * Poczatek petli kierujacej programem.
         */
        do
        {
            /*
             * Pierwsza petla jest do wprowadzania ilosci graczy.
             */
            
            //------------------ILOSC GRACZY------------------------
            
            do
            {
                System.out.print("Wprowadz liczbe graczy: ");
                
                try
                {   
                    liczbaGraczy = Integer.parseInt( in.readLine() );
                    
                    if( liczbaGraczy < 2 || liczbaGraczy > 4 )
                    {
                        liczbaGraczy = 0;
                        System.out.println("Podano nieprawidlowa ilosc graczy.");
                        continue;
                    }
                    
                }catch( NumberFormatException ex )
                {
                    System.out.println("Nie podano poprawnej liczby.");
                    liczbaGraczy = 0;
                    continue;
                }
            }while( liczbaGraczy == 0 );
            
            //------------------------KONIEC------------------------------------
            
            do
            {
                
                System.out.println("Podaj liczbe zywych graczy:");
                
                try
                {
                    liczbaLudzi = Integer.parseInt(in.readLine());
                    if( liczbaLudzi < 0 || liczbaLudzi > liczbaGraczy )
                    {
                        System.out.println("Podano niewlasciwa liczbe botow.");
                        //g = false;
                        continue;
                    }
                    
                    liczbaBotow = liczbaGraczy - liczbaLudzi;
                    g = true;
                        
                }catch( NumberFormatException ex )
                {
                    System.out.println("Podana wartosc musi byc liczba z przedzialu: 2-"+liczbaGraczy);
                }
                
            }while( g == false );
            
            System.out.println("Liczba ludzi: " + liczbaLudzi + "\nLiczba botow: " + liczbaBotow );
            
            
            //---------------------------------KONIEC------------------------------------
            
            
            /*
             * Druga petla jest od ilosci rund.
             */
            
            //---------------------ILOSC RUND------------------------------------
            
            System.out.println( "Podaj ile rund ma trwac gra:" );
            
            do
            {
                try
                {
                    
                    liczbaRund = Integer.parseInt( in.readLine() );
                    
                    if( liczbaRund < 0 )
                    {
                        System.out.println("Liczba rund musi byc wieksza od 0!");
                        liczbaRund = 0;
                        continue;
                    }
                    
                }catch( NumberFormatException ex )
                {
                    System.out.println("Nie podano liczby.");
                    liczbaRund = 0;
                    continue;
                }
            }while( liczbaRund == 0 );
        
            //-----------------------------KONIEC-----------------------------------
            
            try
            {
                stol = new Table( liczbaGraczy, liczbaLudzi);//tworzenie stolu do rozgrywki
                for( int i = 0; i < liczbaRund; i++ )
                {
                    stol.gameloop();//glowna petla gry, jednej rozgrywki
                }
            }
            catch(IllegalArgumentException e2)
            {
                System.out.println("Blad inicjalizacji stolu do gry");
            }
            
            
            /*
             * Petla sprawdzajaca czy po partii gracz chce wyjsc z gry.
             */
            
            //----------------------------CZY KONIEC GRY----------------------------
            
            
            do
            {
                System.out.println("\t\tKONIEC GRY");
                System.out.println("\n-----------------------------------------------------\n");
                System.out.println("\nCzy chcesz zakonczyc gre? T/N");
                String decyzja = in.readLine();
                decyzja.toUpperCase();
                
                
                if( decyzja.equals("N") )
                {
                    e = true;
                    f = true;
                }else if( decyzja.equals("T") )
                {
                    e = false;
                    f = true;
                }else
                {
                    System.out.println("Nie podano prawidlowej wartosci.");
                    f = false;
                }
            }while( !f );
            
            //-----------------------------------KONIEC------------------------------
            
        }while( e == true );

        
        System.out.println("Dziekujemy za gre. Tworcy POKER-game2014.");
        
    }
    
    
}
